home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Softdisk Magazette Volume 2, No. 08 (1983-04)(Softdisk)(Disk 1 of 2 Side B).zip / Softdisk Magazette Volume 2, No. 08 (1983-04)(Softdisk)(Disk 1 of 2 Side B).do / DRILL.REVIEW.bas < prev    next >
BASIC Source File  |  1996-12-24  |  7KB  |  232 lines

  1. 1  REM  ADDITION DRILL AND PRACTICE
  2. 2  REM  COPYRIGHT (C) 1982 - JOHN BEIDLER
  3. 3  REM   MAY BE DUPLICATED FOR
  4. 4  REM  EDUCATIONAL PURPOSES BUT
  5. 5  REM  NOT FOR RESALE
  6. 10  DIM A(10),P(10,10)
  7. 11 D$ = "<CTRL-D>"
  8. 15  GOSUB 4000: REM  MARQUE
  9. 30  GOSUB 2000: REM  MAIN PROCEDURE
  10. 99  END 
  11. 300  REM  FILE THE PROBLEM
  12. 305 X5 = X5 +1
  13. 330  FOR I5 = 0 TO N0 -1
  14. 335  FOR J5 = 0 TO S0 -1
  15. 340  INPUT P(I5,J5)
  16. 350  NEXT J5: NEXT I5
  17. 355  INPUT Z$
  18. 399  RETURN 
  19. 400  REM  CARRY ERROR
  20. 410  IF I4 = I  THEN R8 = R8 +1
  21. 412  IF I4 < >I  THEN R8 = 0:I4 = I
  22. 420  VTAB 12 -N0 -2 -R8: HTAB 20 +S0 -2 *I
  23. 430  INVERSE : PRINT A9;: NORMAL 
  24. 499  RETURN 
  25. 500  REM  ANSWER ERROR
  26. 510  IF I4 = I  THEN R8 = R8 +1
  27. 512  IF I4 < >I  THEN R8 = 0:I4 = I
  28. 520  VTAB 12 +N0 +2 +R8: HTAB 20 +S0 -2 *I
  29. 530  INVERSE : PRINT A9;: NORMAL 
  30. 599  RETURN 
  31. 600  REM  ERROR HANDLER
  32. 601 I4 =  -1:R$ = " ":R8 = 0
  33. 602  VTAB 1: HTAB 1
  34. 604  ONERR  GOTO 700
  35. 605  INPUT Q$
  36. 610  IF (Q$ = "N")  OR (Q$ = "S")  THEN  RETURN 
  37. 615  INPUT I: INPUT A9
  38. 616  IF Q$ < >R$  THEN I4 =  -1:R8 = 0
  39. 620  IF Q$ = "A"  THEN  GOSUB 500
  40. 630  IF Q$ = "C"  THEN  GOSUB 400
  41. 631 R$ = Q$
  42. 640  VTAB 1: HTAB 1
  43. 680  INPUT Z$
  44. 690  GOTO 605
  45. 699  RETURN 
  46. 700  REM  END OF PROCESS
  47. 705  PRINT : VTAB 23: PRINT "ANY KEY TO CONTINUE"
  48. 710  GOSUB 3900
  49. 720  PRINT D$;"CLOSE ";N$
  50. 730  HOME : VTAB 10: PRINT "SHOULD THIS STUDENT'S FILE BE REMOVED?"
  51. 745  PRINT "(Y/N)? ";: GET A$: PRINT A$
  52. 750  IF A$ = "Y"  THEN 770
  53. 755  IF A$ < >"N"  THEN 730
  54. 760  GOTO 798
  55. 770  PRINT D$;"DELETE ";N$
  56. 780  PRINT D$;"DELETE ";N$;".FINAL"
  57. 798  GOTO 2040
  58. 799  END 
  59. 800  REM  SET UP A PROBLEM
  60. 801  HOME : VTAB 2: HTAB 1: PRINT "PROBLEM NO. ";P;" OF ";M9;: HTAB 28
  61. 802  IF Q$ = "N"  THEN  PRINT "ADDITION"
  62. 803  IF Q$ = "S"  THEN  PRINT "SUBTRACTION"
  63. 804  VTAB 3: PRINT "DRILL RESULTS FOR ";N$;: VTAB 1: HTAB 1
  64. 805 P(N0,0) = 0
  65. 810  GOSUB 300
  66. 820  FOR I = 0 TO S0 -1:A(I) = 0
  67. 830  FOR J = 0 TO N0:A(I) = A(I) +P(J,I): NEXT J
  68. 840 Q =  INT(A(I)/10)
  69. 845 A(I) = A(I) -10 *Q
  70. 850 P(N0,I +1) = Q
  71. 860  NEXT I
  72. 870 A(S0) = Q
  73. 900  REM  DISPLAY
  74. 905  FOR I = 0 TO N0
  75. 906  VTAB 12 +N0 -1 -2 *I
  76. 907  IF (I = N0)  AND (Q$ = "S")  THEN 929
  77. 910  FOR J = 0 TO S0 -1
  78. 912  HTAB 20 +S0 -2 *J
  79. 915  PRINT P(I,J);
  80. 920  NEXT J
  81. 921  IF I = N0  THEN 929
  82. 922  FOR J = S0 -1 TO 0  STEP  -1: HTAB 20 +S0 -2 *J
  83. 924  IF P(I,J) < >0  THEN 929
  84. 925  PRINT " ";: NEXT J
  85. 929  NEXT I
  86. 930  VTAB 12 +N0: HTAB 20 -S0 -1
  87. 935  FOR J = 0 TO S0: PRINT "--";: NEXT J
  88. 939  IF Q$ = "S"  THEN 945
  89. 940  VTAB 12 -N0: HTAB 20 -S0 -1
  90. 942  FOR J = 0 TO S0: PRINT "--";: NEXT J
  91. 944  VTAB 12 -N0 -1: HTAB 20 -S0 -7: PRINT "CARRY"
  92. 945  VTAB 12 +N0 +1: HTAB 20 -S0 -7: PRINT "ANSWER";
  93. 950  FOR I = S0 TO 0  STEP  -1
  94. 951  IF (Q$ = "S")  AND (I = S0)  THEN 965
  95. 955  HTAB 20 +S0 -2 *I
  96. 960  PRINT A(I);
  97. 965  NEXT I
  98. 970  VTAB 12 +N0 -1: HTAB 20 -S0 -1
  99. 971  IF Q$ = "S"  THEN  PRINT "-"
  100. 972  IF Q$ = "N"  THEN  PRINT "+"
  101. 999  RETURN 
  102. 1000  REM  DRILL AND PRACTICE
  103. 1015 X3 =  FRE(0): REM  HOUSE CLEANING
  104. 1018  INPUT Q$: INPUT P
  105. 1020  GOSUB 800: REM  GET A PROBLEM
  106. 1030  GOSUB 600: REM  GO THROUGH A PROBLEM
  107. 1050  PRINT : VTAB 23: PRINT "ANY KEY TO CONTINUE"
  108. 1060  GOSUB 3900
  109. 1070  INPUT P
  110. 1075 X3 =  FRE(0): REM  HOUSE CLEANING
  111. 1080  GOTO 1020
  112. 1099  RETURN 
  113. 1100  REM  OPEN/APPEND PROCEDURE
  114. 1105  PRINT 
  115. 1110  PRINT D$;"OPEN   ";N$
  116. 1120  PRINT D$;"READ  ";N$
  117. 1129  RETURN 
  118. 1150  REM  CLOSE FILE PROCEDURE
  119. 1151  PRINT 
  120. 1155  PRINT D$;"CLOSE ";N$
  121. 1159  RETURN 
  122. 1200  REM  PAUSE PROCEDURE
  123. 1210  FOR Z7 = 0 TO 1500: NEXT Z7
  124. 1219  RETURN 
  125. 2000  REM  MAIN PROCEDURE
  126. 2010  GOSUB 2800: REM  GET STUDENT NAME AND SET UP DATA FILE
  127. 2020  GOSUB 1000: REM  DRILL PROCEDURE
  128. 2040  PRINT : PRINT : PRINT "DO YOU WISH TO REVIEW ANOTHER STUDENT?"
  129. 2045  PRINT "(Y/N)? ";: GET A$: PRINT A$: VTAB 12
  130. 2050  IF A$ = "Y"  THEN 2000
  131. 2055  IF A$ < >"N"  THEN 2040
  132. 2080  GOSUB 4000
  133. 2099  PRINT D$;"RUN START.DRILLS"
  134. 2800 : REM  STUDENT SET UP
  135. 2805  HOME : PRINT D$;"CATALOG"
  136. 2806  PRINT 
  137. 2810  PRINT "ENTER ";: INVERSE : PRINT "FILE NAME";: NORMAL : PRINT " THEN PRESS 'RETURN'"
  138. 2815  INPUT N$
  139. 2816  IF  LEN(N$) = 0  THEN  RETURN 
  140. 2818  GOSUB 3000
  141. 2820  PRINT D$;"OPEN ";N$
  142. 2822  PRINT D$;"READ  ";N$
  143. 2823  INPUT A$
  144. 2824  INPUT M9: INPUT N0: INPUT S0
  145. 2830  GOSUB 3020
  146. 2899  RETURN 
  147. 3000  REM  STUDENT WRAPUP
  148. 3010  HOME : VTAB 3: PRINT "DRILL RESULTS FOR ";N$: PRINT : PRINT 
  149. 3011  PRINT D$;"OPEN ";N$;".FINAL"
  150. 3012  PRINT D$;"READ  ";N$;".FINAL"
  151. 3014  INPUT A$,M9
  152. 3016  INPUT X5: FOR K2 = 0 TO 3: INPUT E(K2): NEXT K2
  153. 3019  PRINT D$;"CLOSE ";N$;".FINAL": RETURN 
  154. 3020  PRINT M9 -X5;" PROBLEMS CORRECT OUT OF ";M9: PRINT 
  155. 3030  PRINT "THAT'S "; INT(100 *(M9 -X5)/M9);"%": PRINT 
  156. 3040  PRINT : PRINT : PRINT 
  157. 3050  PRINT "ERRORS    FIRST     RETRY ": PRINT 
  158. 3060  PRINT "ANSWER";: HTAB 13: PRINT E(1);: HTAB 23: PRINT E(3): PRINT 
  159. 3070  PRINT "CARRY ";: HTAB 13: PRINT E(0);: HTAB 23: PRINT E(2): PRINT 
  160. 3080  GOSUB 1200: PRINT : PRINT 
  161. 3090  PRINT "ANY KEY TO CONTINUE"
  162. 3091  GOSUB 3900
  163. 3099  RETURN 
  164. 3900  REM  KEYBOARD PEEKER
  165. 3910  POKE 49168,0
  166. 3920 X8 =  PEEK(49152)
  167. 3925  IF X8 <128  THEN 3920
  168. 3930 X8 = X8 -128:C$ =  CHR$(X8)
  169. 3998  POKE 49168,0
  170. 3999  RETURN 
  171. 4000  REM  MARQUE
  172. 4001  HOME 
  173. 4010  VTAB 2:A$ = "ARITHMETIC DRILL AND PRACTICE": GOSUB 4100
  174. 4015  VTAB 3: INVERSE :A$ = "TEACHER REVIEW": GOSUB 4100
  175. 4016  NORMAL 
  176. 4020  VTAB 5:A$ = "COPYRIGHT (C) 1982 - J. BEIDLER": GOSUB 4100
  177. 4025  VTAB 7:A$ = "ALL RIGHTS RESERVED": GOSUB 4100
  178. 4029  GOSUB 1200
  179. 4090  GOSUB 1200: GOSUB 1200: GOSUB 1200
  180. 4099  RETURN 
  181. 4100  REM  CENTER ON GIVEN LINE
  182. 4110 X3 =  LEN(A$)
  183. 4120  HTAB 20 -(X3/2)
  184. 4130  PRINT A$
  185. 4199  RETURN 
  186. 7800  REM  TEACHER SET UP
  187. 7809  VTAB 8
  188. 7810  PRINT "NUMBER OF DIGITS PER NUMBER (1-8)? ";
  189. 7811  GET A$: PRINT A$: IF (A$ <"1")  OR (A$ >"8")  THEN 7810
  190. 7812 S0 =  ASC(A$) - ASC("0")
  191. 7814  PRINT 
  192. 7815  PRINT "NUMBER OF NUMBERS TO BE ADDED (2-5) ?";
  193. 7818  GET A$: PRINT A$: IF (A$ <"2")  OR (A$ >"5") GOTO 7815
  194. 7820 N0 =  ASC(A$) - ASC("0")
  195. 7821  PRINT 
  196. 7822  PRINT "NUMBER OF RETRIES PER DIGIT (0-9)? ";
  197. 7823  GET A$: PRINT A$: IF (A$ <"0")  OR (A$ >"9") GOTO 7823
  198. 7824 R9 =  ASC(A$) - ASC("0")
  199. 7825  PRINT 
  200. 7826  INPUT "PROBLEMS PER DRILL (THEN 'RETURN')? ";M9
  201. 7829  PRINT 
  202. 7830  PRINT "REQUIRE CARRY ENTRIES (Y/N)? ";
  203. 7832  GET C$: PRINT C$;
  204. 7834  IF (C$ < >"Y")  AND (C$ < >"N")  THEN  HTAB 1: GOTO 7830
  205. 7840  PRINT : PRINT 
  206. 7865  INVERSE : PRINT "INFORMATION CORRECT (Y/N)?";: NORMAL 
  207. 7868  GET A$: PRINT A$;
  208. 7875  IF A$ = "Y"  THEN  PRINT : RETURN 
  209. 7878  IF A$ < >"N"  THEN  HTAB 1: GOTO 7865
  210. 7880  HOME : GOSUB 7900: GOTO 7800
  211. 7899  RETURN 
  212. 7900  REM  BANNER
  213. 7910  INVERSE : FOR I = 2 TO 6
  214. 7920  VTAB I: FOR J = 8 TO 31
  215. 7930  HTAB J: PRINT " ";: NEXT J: NEXT I
  216. 7940  PRINT 
  217. 7950 A$ = "ADDITION DRILL": VTAB 3: HTAB 13: PRINT A$
  218. 7960 A$ = "TEACHER INITIALIZATION": VTAB 5: HTAB 9: PRINT A$
  219. 7995  NORMAL 
  220. 7999  RETURN 
  221. 9000  REM  DATA DIRECTORY
  222. 9001  REM  A$ - GEN'L PURPOSE USE IN GET
  223. 9002  REM  A(7) - ANSWER ARRAY
  224. 9003  REM  C(7) - CARRY ARRAY
  225. 9004  REM  D$ - CNTL-D
  226. 9008  REM  E(4) - ERROR COUNTS 0-CARRY, 1-ANSWER, 2-CARRY RETRY, 3-ANSWER RETRY
  227. 9010  REM  M9 - NO. OF PROBLEMS PER DRILL
  228. 9019  REM  N$ - STUDENT7S NAME
  229. 9020  REM  N0 - NO. OF NUMBERS TO ADD PER PROBLEM
  230. 9024  REM  P - COUNT OF PROBLEM NUMBER
  231. 9025  REM  P(6,7) - 2-D ARRAY OF THE PROBLEM
  232. 9030  REM  S0 - SIZE OF EACH NUMBER